'''

shutil 模块提供了许多函数来操作文件和文件夹。
shutil 模块是 os 模块的补充，提供了更多的功能。
shutil.copy(src, dst) 复制文件
shutil.copytree(src, dst) 复制文件夹
shutil.move(src, dst) 移动文件或文件夹
shutil.rmtree(path) 删除文件夹
shutil.make_archive(base_name, format, root_dir) 压缩文件夹
shutil.unpack_archive(filename, extract_dir) 解压文件夹
shutil.disk_usage(path) 获取磁盘使用情况
shutil.get_terminal_size(fallback=(columns, lines, width, height)) 获取终端大小
shutil.get_size(path) 获取文件大小
shutil.get_m_usage(path) 获取文件大小
shutil.get_m_usage(path) 获取文件大小

'''
import os
import shutil


curFilePath = os.path.dirname(os.path.abspath(__file__))
print(curFilePath)
print('1-----------------------------------------------------')
# 1. 复制文件
# shutil.copy('test[1].txt', 'test2.txt')
# 2. 复制文件夹
# shutil.copytree('tmp2', 'tmp3') # 文件夹存在会报错
# shutil.copytree('tmp2', 'tmp4',dirs_exist_ok=True) # 文件夹存在不会报错，注意要带上dirs_exist_ok=True参数
# 3. 移动文件或文件夹
# shutil.move('tmp4', 'tmp5') # 文件夹存在会报错
# 4. 删除文件夹
# shutil.rmtree('tmp5') # 文件夹不存在会报错
print('5-------------------------------------------------------')
# 5. 压缩文件夹
shutil.make_archive('aaa', 'zip', curFilePath) # 文件夹存在会报错
print('6-------------------------------------------------------')
# 6. 解压文件夹
zipfile = os.path.join(curFilePath, 'aaa.zip')
print(zipfile)
unzipfile = os.path.join(curFilePath, 'bbb')
print(unzipfile)
shutil.unpack_archive(zipfile, unzipfile)
# 7. 获取磁盘使用情况
# print(shutil.disk_usage('C:\\'))